package com.essence.grabiec104.grab.model;

import com.essence.common.model.Substation;
import lombok.Data;

@Data
public class AlarmRule {
    public enum MetricTypeEnum {
        CONTROL_FRAME_TOTAL, // 控制帧总数
        CONTROL_POINT_TOTAL, // 控制点总数
        SAME_YK_POINT, // 连续下方相同遥控指令
        SAME_SD_POINT, // 连续下方相同设点指令
        YT_PRECISION, // 连续遥调跳变
        YC_SLOPE // 连续遥测跳变
    }

    public enum AlarmLevelEnum {
        ALERT, // 提示
        NOTICE, // 注意
        ATTENTION, // 告警
        CRITICAL // 紧急
    }

    public enum ThresholdUnitEnum {
        PERCENT, // 百分比型
        COUNT // 数值型
    }

    private boolean enabled; // 是否启用
    private int intervalSeconds; // 下发指令的时间间隔
    private double threshold; // 告警阈值

    private MetricTypeEnum metricType; // 告警指标
    private int metricTypeIndex;
    private AlarmLevelEnum alarmLevel; // 告警级别
    private int alarmLevelIndex;
    private ThresholdUnitEnum thresholdUnit; // 告警阈值单位
    private int thresholdUnitIndex;
    private Substation substation;
    private int substationId;
    private long id;

}
